class Solution {
public:
    string removeDuplicates(string S) {

        stack<char> res;
        int i = 0;

        while(i < S.size())
        {
            if(res.empty() || S[i] != res.top())  
                res.push(S[i]);
            else res.pop();

            i++;
        }

        string ans;

        while(!res.empty())
        {
            ans += res.top();
            res.pop();
        }

        reverse(ans.begin(), ans.end());
        
        return ans;
    }
};